/*
 * scheduleAlgorithm.h
 *
 * Containts different scheduling algorithms
 *
 *  Created on: 13.01.2013
 *      Author: Michael
 */

#ifndef SCHEDULEALGORITHM_H_
#define SCHEDULEALGORITHM_H_

/*
 * ======== Standard includes ========
 */
#include <inttypes.h>

/*
 * ======== Project related includes ========
 */
#include "os/scheduler/thread/thread.h"

/*
 * Define the general interface of a schedule algorithm.
 * @param allThreads Array with all available threads
 * @param currThread Index of the current active thread
 */
typedef uint16_t(*schedule_algorithm)(Thread_t* allThreads, uint16_t currThread);

/*
 * Round robin algorithm.
 */
uint16_t scheduleAlgo_roundRobin(Thread_t* allThreads, uint16_t currThread);

#endif /* SCHEDULEALGORITHM_H_ */
